Phaser Beams: Integrating Stream Parallelism with Task Parallelism
نویسندگان
چکیده
Current streaming languages place significant restrictions on the structure of parallelism that they support, and usually do not allow for dynamic task parallelism. In contrast, there are a number of task-parallel programming models that support dynamic parallelism but lack the ability to set up efficient streaming communications among dynamically varying sets of tasks. We address this gap by introducing Phaser Beams as a foundation for integrating stream parallelism with task parallelism. Phaser Beams builds on past work on accumulators and point-to-point synchronization in Habanero-Java (HJ) phasers, which in turn was derived from X10 clocks. Phaser Beams introduce three key extensions relative to past work: 1) a bounded phaser that limits the maximum phase difference between a producer and a consumer synchronizing on that phaser and the buffer size needed to support streaming, 2) an extension to accumulators to work in non-barrier mode with bounded phasers for use in streaming, and 3) a dynamic cycle-detection algorithm to phaser registration to detect cyclic structures in a streaming program so as to enable efficient batching optimizations for acyclic structures. These extensions could easily be incorporated in a future version of X10. Our preliminary Java-based implementation of Phaser Beams is restricted to the single node case, and the results obtained on three multicore SMPs are encouraging. As a calibration of the baseline performance of phaser synchronization, the performance of barriers in HJ phasers was found to be significantly faster than Java’s CyclicBarrier and the Java and C++ implementations of X10’s clocks, when measured using the BarrierBench benchmark. To evaluate the effectiveness of streaming with cyclic structures in Phaser Beams, we measured a performance improvement of up to 6.0× for the thread-ring microbenchmark, relative to the original Java version. For the restricted case of static parallelism and acyclic graphs, we compared the performance of our Phaser Beams implementation with the batched C-based StreamIt v2.1.1 implementation that only supports acyclic graphs. Our results on one microbenchmark (Push-Pop) and three StreamIt benchmarks (FilterBank, FMRadio, BeamFormer) show that the scalability of the Phaser Beams implementation relative to serial Java is better than that of StreamIt v2.1.1 relative to serial C, but the difference in ab[Copyright notice will appear here once ’preprint’ option is removed.] solute performance varied depending on the relative performance of the serial Java vs. serial C versions. To evaluate the effectiveness of Phaser Beams to integrate stream and dynamic task parallelism, we measured a performance improvement of up to 37.2× for the FacilityLocation benchmark compared with a pure task-parallel implementation using Intel’s Concurrent Collections (CnC) language, and up to 40.2× speedup relative to sequential implementation for Sieve of Eratosthenes.
منابع مشابه
Distributed Phasers
A phaser is an expressive synchronization construct that unifies collective and point-to-point coordination with dynamic task parallelism. Each task can participate in a phaser as a signaler, a waiter, or both. The participants in a phaser may change over time as dynamic tasks are added and deleted. In this poster, we present a highly concurrent and scalable design of phasers for a distributed ...
متن کاملProcessFast, a Java Framework for Development of Concurrent and Distributed Applications
Today, any application that requires processing information gathered from the Web will likely require a parallel processing approach to be able to scale. While writing such applications, the developer should be able to exploit several types of parallelism paradigms in a natural way. Most of the available development tools are focused on just one of these parallelism types, e.g. the data paralle...
متن کاملRenewed Hope for Data Parallelism: Unintegrated Support for Task Parallelism in ZPL
This paper suggests that data parallelism is more general than previously thought and that integrating support for task parallelism into a data parallel programming language is a mistake. With several proposed improvements, the data parallel programming language ZPL is surprisingly versatile. The language and its power are illustrated by the solution to several traditionally task parallel probl...
متن کاملUniversity of Delaware Department of Electrical and Computer Engineering Computer Architecture and Parallel Systems Laboratory Synchronization for Dynamic Task Parallelism on Manycore Architectures
Manycore architectures –hundreds to thousands of cores per processor – are seen by many as a natural evolution of multicore processors. To take advantage of this massive parallelism in reality requires a productive programming interface for parallel programming, and an efficient execution and thread coordination runtime. Dynamic task parallelism, introduced recently in several programming langu...
متن کاملA Study of the Role of Repetition of Music in the Nimayee Poems of Akhavan Sales
In this article, the aim of the authors is to study the role of repetition in creating music and parallelism in Nimayee poems in the three collections of poems by Mehdi Akhavan Sales: Zamestan, Akhere Shahname and Az Avesta. Accordingly, the researchers have investigated the various manners of repetition in creating parallelism in the poems at three levels: phonological parallelism, lexical par...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011